﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Protocolo.Enums;
using System.Globalization;

namespace Protocolo.Mensajes.Request
{
    public class EnviarDatosServidorRequest : MensajeBase
    {
        protected override string Datos
        {
            get
            {
                string datos = IPServidor.PadLeft(15) + TCPServidor.ToString("0000") + string.Format("{0:00000.00}", AnchoDeBanda) + IntervaloSincronizacion.ToString("0000");
                foreach (string archivo in dicArchivosMD5.Keys)
                {
                    datos += archivo.PadLeft(50) + dicArchivosMD5[archivo].PadLeft(32);
                }

                return datos;
            }
            set
            {
                IPServidor = value.Substring(0, 15).Trim();
                TCPServidor = int.Parse(value.Substring(15, 4).Trim());
                AnchoDeBanda = double.Parse(value.Substring(19, 8).Trim().Replace(".",","), CultureInfo.GetCultureInfo("es-ES").NumberFormat);
                IntervaloSincronizacion = int.Parse(value.Substring(27, 4));
                dicArchivosMD5 = new Dictionary<string, string>();
                int pos = 0;
                string archivos = value.Substring(31);
                while (archivos.Length >= 82)
                {
                    dicArchivosMD5.Add(archivos.Substring(pos, 50).Trim(), archivos.Substring(pos + 50, 32).Trim());
                    archivos = archivos.Substring(82);
                }
            }
        }

        public string IPServidor { get; set; }
        public int TCPServidor { get; set; }
        public double AnchoDeBanda { get; set; }
        public int IntervaloSincronizacion { get; set; }
        public Dictionary<string, string> dicArchivosMD5 { get; set; }
        
        public EnviarDatosServidorRequest()
        {
            this.Header = TipoMensajeEnum.REQ;
            this.Cmd = ComandoEnum.EnviarDatosServidor;
        }
    
    }
}
